package com.cictec.middleware.gps.engine;

import java.util.Date;
import java.util.Map;

import com.cictec.middleware.commons.utils.Constants;
import com.cictec.middleware.commons.utils.PMSUtils;

/**
 * 位置点时序对象，当前位置点状态信息
 * 
 * @author Zhibin
 *
 */
@SuppressWarnings("serial")
public class TimingPoint extends TimingObject {

	public TimingPoint(){
	}
	public TimingPoint(Date time, Map<String, String> attributes){
		setTime(time);
		setAttributes(attributes);
	}
	
	/** 城市编码 */
	public void setCityCode(String cityCode) {
		this.setAttribute(Constants.MSG_INFO_POSITION_CITY_CODE, cityCode);
	}
	/** 城市编码 */
	public String getCityCode() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_CITY_CODE);
	}
	
	/** 设置补传数据标识 0：非补传数据、1：补传数据*/
	public void setHistoryFlag(String historyFlag) {
		this.setAttribute(Constants.MSG_INFO_POSITION_HISTORY_DATA, historyFlag);
	}

	/** 设置补传数据标识 0：非补传数据、1：补传数据*/
	public String getHistoryFlag() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_HISTORY_DATA);
	}
	/** 是否补传数据 true:是、false：不是*/
	public boolean isHistroyData(){
		return getHistoryFlag().equals(Constants.MSG_INFO_POSITION_HISTORY_DATA_FLASE);
	}
	
	/** 数据上传时间 YYYY-MM-DD HH:MM:SS.SSS */
	public void setUploadTime(String uploadTime) {
		this.setAttribute(Constants.HED_UPLOAD_TIME, uploadTime);
	}

	/** 数据上传时间 YYYY-MM-DD HH:MM:SS.SSS */
	public String getUploadTime() {
		return this.getAttribute(Constants.HED_UPLOAD_TIME);
	}

	/** 数据采集时间 YYYY-MM-DD HH:MM:SS.SSS */
	public void setGatherTime(String uploadTime) {
		this.setAttribute(Constants.MSG_INFO_POSITION_GATHER_TIME, uploadTime);
	}

	/** 数据采集时间 YYYY-MM-DD HH:MM:SS.SSS */
	public String getGatherTime() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_GATHER_TIME);
	}

	/** 经度 */
	public void setLongitude(String longitude) {
		super.setAttribute(Constants.MSG_INFO_POSITION_LONGITUDE, longitude);
	}

	/** 经度 */
	public String getLongitude() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_LONGITUDE);
	}

	/** 纬度 */
	public void setLatitude(String latitude) {
		this.setAttribute(Constants.MSG_INFO_POSITION_LATITUDE, latitude);
	}

	/** 纬度 */
	public String getLatitude() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_LATITUDE);
	}
	
	/** 经度指示器E */
	public void setLongitudeIndicator(String longitudeIndicato) {
		super.setAttribute(Constants.MSG_INFO_POSITION_LONGITUDE_INDICATOR, longitudeIndicato);
	}

	/** 经度指示器E */
	public String getLongitudeIndicator() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_LONGITUDE_INDICATOR);
	}
	/** 纬度指示器N */
	public void setLatitudeIndicator(String latitudeIndicator) {
		this.setAttribute(Constants.MSG_INFO_POSITION_LATITUDE_INDICATOR, latitudeIndicator);
	}
	
	/** 纬度指示器N */
	public String getLatitudeIndicator() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_LATITUDE_INDICATOR);
	}

	/** 速度 */
	public void setSpeed(String speed) {
		this.setAttribute(Constants.MSG_INFO_POSITION_SPEED, speed);
	}

	/** 速度 */
	public String getSpeed() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_SPEED);
	}

	/** 角度 */
	public void setCounrse(String counrse) {
		this.setAttribute(Constants.MSG_INFO_POSITION_COURSE, counrse);
	}

	/** 角度 */
	public String getCounrse() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_COURSE);
	}

	/** 设备编号 */
	public void setDevCode(String deviceCode) {
		this.setAttribute(Constants.HED_DEV_CODE, deviceCode);
	}

	/** 设备编号 */
	public String getDevCode() {
		return this.getAttribute(Constants.HED_DEV_CODE);
	}
	
	/** 设备UUID */
	public void setDevUuid(String deviceCode) {
		this.setAttribute(Constants.HED_DEV_UUID, deviceCode);
	}

	/** 设备UUID */
	public String getDevUuid() {
		return this.getAttribute(Constants.HED_DEV_UUID);
	}
	
	/** 【进出站】设备上传站序 */
	public void setPositionNumber(String positionNumber) {
		this.setAttribute("positionNumber", positionNumber);
	}
	/** 【进出站】设备上传站序 */
	public String getPositionNumber() {
		return this.getAttribute("positionNumber");
	}
	
	/**
	 * 进出站状态
	 * <br> 1:进站
	 * <br> 2:出站
	 * @param stationEnterOut
	 */
	public void setStationEnterOut(String stationEnterOut){
		this.setAttribute(Constants.BUS_ENTER_OUT_SATION, stationEnterOut);
	}
	/**
	 * 进出站状态
	 * <br> 1:进站
	 * <br> 2:出站
	 * @return
	 */
	public String getStationEnterOut(){
		return this.getAttribute(Constants.BUS_ENTER_OUT_SATION);
	}
	
	/**
	 *【进出站】触发类型 HEX 1 字节 0：表示自动触发 1：表示手动触发 2：表示调试数据 3:wifi 报站类型 
	 * @return
	 */
	public void setStationEnterOutTrigger(String stationEnterOutTrigger){
		this.setAttribute(Constants.LINE_STATION_TRIGGER_TYPE, stationEnterOutTrigger);
	}
	/**
	 * 【进出站】触发类型 HEX 1 字节 0：表示自动触发 1：表示手动触发 2：表示调试数据 3:wifi 报站类型 
	 * @return
	 */
	public String getStationEnterOutTrigger(){
		return this.getAttribute(Constants.LINE_STATION_TRIGGER_TYPE);
	}
	
	/**
	 * 是否是进出站信息
	 * @return
	 */
	public boolean isEnterOut(){
		return getAttributes().containsKey("dataTypeTME");
	}
	
	/**
	 * 是否在站内*
	 * <br> 1:进站
	 * <br> 2:出站
	 * @return
	 */
	public boolean isInStation(){
		String enterOut = getStationEnterOut();
		return Constants.VAL_ENTER_OUT_SATION_ENTER.equals(enterOut);
	}
	

	/** 【服务器判定】【原始】设备上传获取的站点信息 UUID*/
	public void setStationUuidOrg(String lsUuid) {
		this.setAttribute(Constants.LINE_STATION_UUID_ORG, lsUuid);
	}
	/** 【服务器判定】【原始】设备上传获取的站点信息 UUID*/
	public String getStationUuidOrg() {
		return this.getAttribute(Constants.LINE_STATION_UUID_ORG);
	}
	/** 【服务器判定】【原始】设备上传获取的站点信息 name */
	public void setStationNameOrg(String stationName) {
		this.setAttribute(Constants.LINE_STATION_NAME_ORG, stationName);
	}
	/** 【服务器判定】【原始】设备上传获取的站点信息 name */
	public String getStationNameOrg() {
		return this.getAttribute(Constants.LINE_STATION_NAME_ORG);
	}
	/** 【服务器判定】【原始】设备上传获取的站点序号 */
	public void setStationLineSeqOrg(String stationSeq) {
		this.setAttribute(Constants.LINE_STATION_SEQ_ORG, stationSeq);
	}
	/** 【服务器判定】【原始】设备上传获取的站点序号 */
	public String getStationLineSeqOrg() {
		return this.getAttribute(Constants.LINE_STATION_SEQ_ORG);
	}
	/** 【服务器判定】【原始】设备上传获取的站点信息 lineType */
	public void setStationLineTypeOrg(String lineType) {
		this.setAttribute(Constants.LINE_TYPE_ORG, lineType);
	}
	/** 【服务器判定】【原始】设备上传获取的站点信息 lineType */
	public String getStationLineTypeOrg() {
		return this.getAttribute(Constants.LINE_TYPE_ORG);
	}
	
	/** 【服务器判定】站点序号*/
	public synchronized void setStationSeq(String stationSeq){
		this.setAttribute(Constants.LINE_STATION_SEQ, stationSeq);
	}
	/** 【服务器判定】站点序号*/
	public synchronized String getStationSeq(){
		return this.getAttribute(Constants.LINE_STATION_SEQ);
	}
	/** 【服务器判定】站点名称*/
	public synchronized void setStationName(String stationName){
		this.setAttribute(Constants.MSG_INFO_POSITION_STATION, stationName);
	}
	/** 【服务器判定】站点名称*/
	public synchronized String getStationName(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_STATION);
	}
	/** 【服务器判定】站点UUID*/
	public synchronized void setStationUuid(String lsUuid){
		this.setAttribute(Constants.LINE_STATION_UUID, lsUuid);
	}
	/** 【服务器判定】站点UUID*/
	public synchronized String getStationUuid(){
		return this.getAttribute(Constants.LINE_STATION_UUID);
	}
	
	/**
	 * 上下行
	 * <br> 0：【没有上下行】
	 * <br> 1：【上行】
	 * <br> 2：【下行】
	 * @param lineType
	 */
	public void setLineType(String lineType){
		this.setAttribute(Constants.LINE_TYPE, lineType);
	}
	
	/**
	 * 上下行
	 * <br> 0：【没有上下行】
	 * <br> 1：【上行】
	 * <br> 2：【下行】
	 * @param lineType
	 */
	public String getLineType(){
		if(PMSUtils.isEmpty(getAttribute(Constants.LINE_TYPE))){
			setLineType(Constants.VAL_LINE_NOT_SPEC);
		}
		return this.getAttribute(Constants.LINE_TYPE);
	}

	/**
	 * 是否存在上下行 【lineType 不为null 或者不等于 0】
	 * <br> 0：【没有上下行】
	 * <br> 1：【上行】
	 * <br> 2：【下行】
	 * @param lineType
	 */
	public boolean isLineTypeExist() {
		String lineType = getLineType();
		return (lineType == null || lineType.equals(Constants.VAL_LINE_NOT_SPEC)) ? false : true;
	}


	/** 设备线路编号 */
	public void setDevLineId(String lineDeviceUuid) {
		this.setAttribute(Constants.DEVICE_LINE_ID, lineDeviceUuid);
	}

	/** 设备线路编号 */
	public String getDevLineId() {
		return this.getAttribute(Constants.DEVICE_LINE_ID);
	}
	
	/** 线路UUID */
	public void setLineUuid(String lineUuid){
		this.setAttribute(Constants.LSU_LINE_UUID, lineUuid);
	}
	/** 线路UUID */
	public String getLineUuid(){
		return this.getAttribute(Constants.LSU_LINE_UUID);
	}
	/** 线路名 */
	public void setLineName(String lineName){
		this.setAttribute(Constants.MSG_INFO_POSITION_LINE_NAME, lineName);
	}
	/** 线路名 */
	public String getLineName(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_LINE_NAME);
	}
	/** 车辆UUID */
	public void setBusUuid(String busUuid){
		this.setAttribute(Constants.HED_BUS_UUID, busUuid);
	}
	/** 车辆UUID */
	public String getBusUuid(){
		return this.getAttribute(Constants.HED_BUS_UUID);
	}
	/** 车牌号 */
	public void setBusNumber(String busNumber){
		this.setAttribute(Constants.HED_BUS_PALTE, busNumber);
	}
	/** 车牌号 */
	public String getBusNumber(){
		return this.getAttribute(Constants.HED_BUS_PALTE);
	}
	/** 车辆自编号 */
	public void setBusSelfCode(String busNumber){
		this.setAttribute(Constants.HED_BUS_SELF_CODE, busNumber);
	}
	/** 车辆自编号 */
	public String getBusSelfCode(){
		return this.getAttribute(Constants.HED_BUS_SELF_CODE);
	}
	
	/** 司机UUID */
	public void setDriverUuid(String driverUuid){
		this.setAttribute(Constants.MSG_INFO_DRIVER_UUID, driverUuid);
	}
	/** 司机UUID */
	public String getDriverUuid(){
		return this.getAttribute(Constants.MSG_INFO_DRIVER_UUID);
	}
	
	/** 司机NAME */
	public void setDriverName(String driverName){
		this.setAttribute(Constants.MSG_INFO_DRIVER_NAME, driverName);
	}
	/** 司机NAME */
	public String getDriverName(){
		return this.getAttribute(Constants.MSG_INFO_DRIVER_NAME);
	}
	/** 司机卡号 */
	public void setDriverIccard(String driverIccard){
		this.setAttribute(Constants.MSG_INFO_POSITION_DRV_ICCARD, driverIccard);
	}
	/** 司机卡号 */
	public String getDriverIccard(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_DRV_ICCARD);
	}
	/** 司机刷卡时间 YYYY-MM-DD HH:MM:SS.SSS */
	public void setDriverSignTime(String drvSignTime){
		this.setAttribute(Constants.MSG_INFO_DRIVER_SIGN_TIME, drvSignTime);
	}
	/** 司机刷卡时间 YYYY-MM-DD HH:MM:SS.SSS */
	public String getDriverSignTime(){
		return this.getAttribute(Constants.MSG_INFO_DRIVER_SIGN_TIME);
	}
	
	/**
	 * 通话号码
	 * @param callPhone
	 */
	public void setCallPhone(String callPhone){
		this.setAttribute(Constants.MSG_INFO_CALL_PHONE, callPhone);
	}
	/** 通话号码 */
	public String getCallPhone(){
		return this.getAttribute(Constants.MSG_INFO_CALL_PHONE);
	}
	
	
	/* ***************** 直线图 start *************************************************/
	/** 直线图 相对线路距离 */
	public void setPositionRate(String positionRate){
		this.setAttribute(Constants.MSG_INFO_POSITION_RATE, positionRate);
	}
	/** 直线图 相对线路距离 */
	public String getPositionRate(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_RATE);
	}
	/** 直线图 相对站点距离 */
	public void setPositionStationRate(String positionRate){
		this.setAttribute(Constants.MSG_INFO_POSITION_STATION_RATE, positionRate);
	}
	/** 直线图 相对站点距离 */
	public String getPositionStationRate(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_STATION_RATE);
	}
	
	/** 当前班次 */
	public void setCurrentShift(String currentShift){
		this.setAttribute(Constants.MSG_INFO_SCHEDULE_SHIFT, currentShift);
	}
	/** 当前班次 */
	public String getCurrentShift(){
		return this.getAttribute(Constants.MSG_INFO_SCHEDULE_SHIFT);
	}
	/** 当前趟次 */
	public void setCurrentTrip(String currentTrip){
		this.setAttribute(Constants.CURRENT_TRIP, currentTrip);
	}
	/** 当前趟次 */
	public String getCurrentTrip(){
		return this.getAttribute(Constants.CURRENT_TRIP);
	}
	
	/** 当前趟次计划发车时间 yyyy-MM-dd HH:mm */
	public void setCurrentTripPlanTime(String currentTripStartTime){
		this.setAttribute(Constants.CURRENT_TRIP_PLAN_DATE, currentTripStartTime);
	}
	/** 当前趟次计划发车时间 yyyy-MM-dd HH:mm */
	public String getCurrentTripPlanTime(){
		return this.getAttribute(Constants.CURRENT_TRIP_PLAN_DATE);
	}
	/** 当前趟次实际发车时间  yyyy-MM-dd HH:mm:ss*/
	public void setCurrentTripStartTime(String currentTripStartTime){
		this.setAttribute(Constants.CURRENT_TRIP_DATE, currentTripStartTime);
	}
	/** 当前趟次实际发车时间  yyyy-MM-dd HH:mm:ss*/
	public String getCurrentTripStartTime(){
		return this.getAttribute(Constants.CURRENT_TRIP_DATE);
	}

	/** 下一班次 */
	public void setNextShift(String nextShift){
		this.setAttribute(Constants.NEXT_SHITF, nextShift);
	}
	/** 下一班次 */
	public String getNextShift(){
		return this.getAttribute(Constants.NEXT_SHITF);
	}
	/** 下一趟次 */
	public void setNextTrip(String nextTrip){
		this.setAttribute(Constants.NEXT_TRIP, nextTrip);
	}
	/** 下一趟次 */
	public String getNextTrip(){
		return this.getAttribute(Constants.NEXT_TRIP);
	}
	/** 下一趟次计划发车时间 yyyy-MM-dd HH:mm:ss */
	public void setNextTripPlanTime(String nextTripStartTime){
		this.setAttribute(Constants.NEXT_TRIP_DATE, nextTripStartTime);
	}
	/** 下一趟次计划发车时间  yyyy-MM-dd HH:mm:ss*/
	public String getNextTripPlanTime(){
		return this.getAttribute(Constants.NEXT_TRIP_DATE);
	}
	
	/**
	 * 客流满载率
	 * @param fullloadRate
	 */
	public void setPassenerflowFullloadRate(String fullloadRate){
		this.setAttribute(Constants.MSG_INFO_PASSENGERFLOW_FULLLOADRATE, fullloadRate);
	}
	/**
	 * 客流满载率
	 * @param fullloadRate
	 */
	public String getPassenerflowFullloadRate(){
		return this.getAttribute(Constants.MSG_INFO_PASSENGERFLOW_FULLLOADRATE);
	}
	
	/**
	 * 报警信息字符串 逗号隔开
	 * @param fullloadRate
	 */
	public void setAllAlarms(String allAlarms){
		this.setAttribute(Constants.MSG_INFO_POSITION_ALL_ALARMS, allAlarms);
	}
	/**
	 * 报警信息字符串 逗号隔开
	 * @param fullloadRate
	 */
	public String getAllAlarms(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_ALL_ALARMS);
	}
	
	/* ***************** 直线图 end   *************************************************/
	
	/* ********************* 状态信息 ***************************************************/
	
	/**
	 * 设备在线状态
	 * <br> 0：不在线
	 * <br> 1： 在线
	 * @return
	 */
	public String getLoginStatus(){
		return this.getAttribute(Constants.MSG_INFO_LOGIN_STATUS);
	}
	
	/**
	 * 设备在线状态
	 * <br> 0：不在线
	 * <br> 1： 在线
	 * @return
	 */
	public void setLoginStatus(String devOnline){
		this.setAttribute(Constants.MSG_INFO_LOGIN_STATUS, devOnline);
	}
	
	
	/**
	 * 漂移状态
	 * <br> 0:坐标漂移;1 : 坐标未漂移
	 * @param statusDeviate
	 */
	public void setAttributeDrift(String statusDrift){
		this.setAttribute(Constants.MSG_INFO_GPS_DRIFT, statusDrift);
	}
	/**漂移状态
	 * <br> 0:坐标漂移;1 : 坐标未漂移
	 * @return
	 */
	public String getStatusDrift(){
		return this.getAttribute(Constants.MSG_INFO_GPS_DRIFT);
	}
	/**
	 * 是否漂移
	 * @return true：坐标漂移，false：坐标未漂移
	 */
	public boolean isInDrift(){
		return Constants.MSG_INFO_GPS_DRIFT_0.equals(getStatusDrift());
	}
	
	/**偏线状态
	 * <br> 0:【偏线结束】
	 * <br> 1:【偏线开始】 
	 * @param statusDeviate
	 */
	public void setAttributeDeviate(String statusDeviate){
		setAttribute(Constants.MSG_INFO_POSITION_PX, statusDeviate);
	}
	/**偏线状态
	 * <br> 0:【偏线结束】
	 * <br> 1:【偏线开始】 
	 * @return
	 */
	public String getStatusDeviate(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_PX);
	}
	
	/**
	 * 是否偏线
	 * <br> 0:【偏线结束】
	 * <br> 1:【偏线开始】 
	 * @return true：偏线，false：未偏线
	 */
	public boolean isInDeviate(){
		return getStatusDeviate() != null && Constants.VAL_IS_PX_1.equals(getStatusDeviate());
	}
	/**
	 * 待发区状态
	 * <br> 0：不在待发区、1:上行待发、2:下行待发区
	 * @param statusStandby
	 */
	public void setAttributeStandBy(String standbyStatus){
		this.setAttribute(Constants.MSG_INFO_POSITION_STANDBY_FLAG, standbyStatus);
	}
	/** 待发区状态
	 * <br> 0：不在待发区、1:上行待发、2:下行待发区
	 */
	public String getStatusStandBy(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_STANDBY_FLAG);
	}
	/**
	 *  是否在待发区
	 * @return true:在，false：不再
	 */
	public boolean isInStandBy(){
		String standby = getStatusStandBy();
		return (standby == null || standby.equals(Constants.VAL_STANDBY_0)) ? false : true;
//		return Constants.MSG_INFO_POSITION_STANDBY_FLAG_1.equals(Constants.VAL_STANDBY_0);
	}
	
	/**运营时间状态
	 * <br> 0：【非运营】不在运营时间内
	 * <br> 1：【运营】在运营时间内
	 * @param statusInOperate
	 */
	public void setAttributeInOperateTime(String statusInOperate){
		this.setAttribute(Constants.MSG_INFO_POSITION_IN_OPER_TIME, statusInOperate);
	}
	/**
	 * 运营时间状态
	 * <br> 0：【非运营】不在运营时间内
	 * <br> 1：【运营】在运营时间内
	 * @return 
	 */
	public String getStatusInOperateTime(){
		return this.getAttribute(Constants.MSG_INFO_POSITION_IN_OPER_TIME);
	}
	
	/**
	 * 是否运营时间状态
	 * <br> 0：【非运营】不在运营时间内
	 * <br> 1：【运营】在运营时间内
	 * @return true:在，false：不在
	 */
	public boolean isInOperateTime(){
		String status = getStatusInOperateTime();
		if(status != null && status.equals(Constants.VAL_BUS_OPER_STATUS_1)){
			return true;
		}
		return false;
	}
	
	/**
	 * 车辆调度状态
	 * <br> 调度状态(0-可调度； 大于0 为不可调度； 1: 维修；2:年检；3:其它):
	 * @param statusDispatch
	 */
	public void setAttributeDispatch(String statusDispatch){
		this.setAttribute(Constants.MSG_INFO_DISPATCH_STATUS, statusDispatch);
	}

	/**
	 * 车辆调度状态
	 *  <br> 调度状态(0-可调度； 大于0 为不可调度； 1: 维修；2:年检；3:其它):
	 * @return
	 */
	public String getStatusDispatch() {
		return this.getAttribute(Constants.MSG_INFO_DISPATCH_STATUS);
	}
	/**
	 *  是否车辆可调度
	 *  <br> 调度状态(0-可调度； 大于0 为不可调度； 1: 维修；2:年检；3:其它):
	 * @return true:可调度，false：不可调度
	 */
	public boolean isDispatch(){
		String standby = getStatusDispatch();
		return "0".equals(standby);
	}
	
	
	
	/** 调度申请 ，车辆状态*/
	public void setScheduApply(String scheduApply){
		this.setAttribute("scheduApply", scheduApply);
	}
	/** 调度申请，车辆状态*/
	public String getScheduApply(){
		return this.getAttribute("scheduApply");
	}
	/** 包车计划 ，车辆状态*/
	public void setBusCharter(String scheduApply){
		this.setAttribute("busCharter", scheduApply);
	}
	/** 包车计划，车辆状态*/
	public String getBusCharter(){
		return this.getAttribute("busCharter");
	}
	
	/**
	 * 判定当前对象中是否包含 某个属性
	 * @param key
	 * @return
	 */
	public boolean containsAttribute(String key){
		return getAttributes().containsKey(key);
	}
	
	/** 消息类型*/
	public void setMsgType(String msgType){
		this.setAttribute(Constants.HED_MSG_TYPE, msgType);
	}

	/** 消息类型*/
	public String getMsgType(){
		return this.getAttribute(Constants.HED_MSG_TYPE);
	}
	
	/** 车辆回场状态 true：已回场1； false：未回场 0*/
	public boolean isInPark() {
		
		return Constants.VAL_BUS_IN_PARK_1.equals(getInPark());
	}

	/** 车辆回场状态 true：已回场1； false：未回场 0*/
	public void setInPark(boolean inPark) {
		this.setAttribute(Constants.MSG_INFO_POSITION_IS_RETURN, inPark? Constants.VAL_BUS_IN_PARK_1:Constants.VAL_BUS_IN_PARK_0);
	}
	/** 车辆回场状态 已回场1； 未回场 0*/
	public String getInPark() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_IS_RETURN);
	}

	/** 车辆是否应该回场状态 true：已回场1； false：未回场 0*/
	public boolean isShouldPark() {
		return Constants.VAL_BUS_IN_PARK_1.equals(getShouldPark());
	}
	/** 车辆是否应该回场状态 true：已回场1； false：未回场 0*/
	public void setShouldPark(boolean shouldPark) {
		this.setAttribute(Constants.MSG_INFO_POSITION_IS_SHOULD_RETURN, shouldPark? Constants.VAL_BUS_SHOULD_RETURN_1:Constants.VAL_BUS_SHOULD_RETURN_0);
	}
	/** 车辆是否应该回场状态 true：已回场1； false：未回场 0*/
	public String getShouldPark() {
		return this.getAttribute(Constants.MSG_INFO_POSITION_IS_SHOULD_RETURN);
	}
}
